package lesson03;

import java.util.concurrent.TimeUnit;

public class Demo_301 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(()->{
            for (int i=0;i<500;i++){
                //只是一个空循环，啥也不干
            }
            for (int i=0;i<500;i++){
                System.out.println("hello thread...");
                try {
                    //尝试暂停1秒，如果在睡眠过程被中断会打印异常栈信息。
                    TimeUnit.SECONDS.sleep(1);
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
            }
        });
        //启动之前看一下线程的状态
        System.out.println("启动之前: "+thread.getState());
        System.out.println("是否存活: "+thread.getState());
        //启动线程
        thread.start();
        //启动线程后通过TimeUnit.MILLISECONDS.sleep(500);让当前线程暂停5000毫秒，以便有时间观察线程的状态变化
        TimeUnit.MILLISECONDS.sleep(500);
        // 启动之后
        System.out.println("启动之后 :"+thread.getState());
        System.out.println("是否存活 :"+thread.isAlive());
        //等待线程执行完成
        thread.join();
        //线程结束之后查看状态
        System.out.println("结束之后 :"+thread.getState());
        System.out.println("是否存活 :"+thread.getState());
    }
}
